C++ Tutorial | By Clayman
-----------------------------------------
TABLE
OF CONTENTS
-----------------------------------------
1. Introduction
4. Exercises
5. What now?
1.INTRODUCTION
1.1. Why do People Program?
Each
person can have his own reason for programming but I can tell you that programming
is one of the best ways to gain a deep understanding of computers and computer
technology. Learning to program makes you understand why computers and computer
programs work the way they do. It also puts some sense into you about how
hard it is to create software.
1.2. What is C++ & OOP?
C++ is an extended
version C. C was developed at Bell Labs, in 1978. The purpose was to create
a simple language (simpler than assembly & machine code...) which can
be used on a variety of platforms. Later in the early 1980's C was extended
to C++ to create an object-oriented language. O(bject) O(riented) P(rogramming)
is a style of programming in which programs are made using Classes. A class
id code in a file separate from the main program - more on classes later.
OOP in general & C++ in particular made it possible to handle the complexity
of graphical environments. (like windows, macintosh..)
1.3. What do I need to program?
Well, you need
a computer and a compiler to start with but you also need some curiosity and
a lot of time. I guess(!?) you have a computer. You can find different compilers
for free from borlands website (Check
5.1). If you have the curiosity but lack in time read stuff at lessons and
detention hours. Read whenever you find time. Having a good C++ book (check
5.2) also helps a lot. (and is much better for your eyes) One thing not to
forget: No tutorial, book, program or course makes you a programmer in 5 days.
YOU make yourself a programmer. NO compiler writes an entire program for you,
YOU write the program.
2.
YOUR FIRST PROGRAM
2.1. Running a C++ Program
Read this part
carefully: A C++ program must be compiled and linked before it can be executed,
or run, on the computer. A great lot of compilers do this automatically. So
what is a compiler? A compiler is a program that translates C++ code into
machine language. Machine language is the language consisting of 1s and 0s,
and is the native language of a computer. A typed C++ program is called the
source-code, and the compiled code is called the object code.
Before the object code can be executed, it must be linked
to other pieces of code (e.g. included libraries) used by the program. The
compiled & linked program is called an executable file. Finally, the program
is executed by the system. It's output is displayed in a window.
2.2. C++ Program Structure
All C++
progs contain statements (commands) that tell the computer what to do. Here
is an example of a simple C++ program:
/*
Downloaded from code.box.sk We own you program */ #include <iostream.h> int main() { cout<<"We own you"; // the first statement return(0); // the second statement } |
Run the program. It should display :
We own you
The structure of a simple C++ program is:
/*
Comments : Name, purpose of the program your name, date, etc. */ #include <librarynames.h> int main() { statements; // comments return(0); } |
Now we will
have a closer look on the structure:
2.3. Comments
Comments are
used to explain the contents of a program for a human reader. The computer
ignores them. The symbols /* and */ are used for the beginning and end of
a comment for multi-line comments. // symbols are also used for commenting.
All characters on a line after the // symbol are considered to be comments
and are ignored. Most newbies think that commenting a program is a waste of
time. They are wrong. Commenting is very important because it makes the code
understandable by other programmers and makes it easier to improve a program
or fix the bugs in it. You'll understand better after trying to decipher a
hundred pages of code you wrote a few months later.
2.4. Libraries
Look at the program above. Following
the opening comment was the line:
#include <iostream.h>
This line simply
tells the computer that the iostream library is needed therefore it should
be included. A library is a collection of program code that can be included
(and used) in a program to perform a variety of tasks. iostream is a library
- also called as a header file, look at its extension - used to perform input/output
(I/O) stream tasks. There are a lot of non-commercial C++ libraries for various
purposes written by good guys who spent more than enough time in front of
their computers. You can find them at code.box.sk. Also references to all
libraries used in the tutorials can be found on the net.
2.5. Functions
The next line in the program was:
int main()
Which is the
header of the main function. Makes sense? No? A function is a set of statements
that accomplish a task. A function header includes the return type of the
function and the function name. As shown in the main() header, main returns
an integer(int) through return(0). So all the functions that have an integer
as the return type returns integers. Very clear. The statements in a function
(in this case the main function) are enclosed in curly braces. The { and }
symbols indicates the beginning and the end of statements. More on functions
later.
2.6. Streams
What is a stream?
In C++ input/output devices are called streams. cout (we used above) is the
c(onsole) out(put) stream, and the send (insertion) operator is used to send
the data "We own you" into the stream. In the first statement:
cout<<"We own you";
The words following
the << operator are put in quotation marks(") to form a string. When
run, the string We own you is sent to the console output device. Yes, it is
also called the computer screen.
Important note: C++ is case sensitive. That
means cout and Cout is not the same thing.
2.7. Return
The second statement was:
return(0);
which causes the program to terminate
sending the value 0 to the computer. The value "0" indicates that the program
terminated without error.
Note:
The statements end with a semicolon (;). A semicolon in C++ indicate the end
of a statement.
3. DATA & NUMBER SYSTEMS
3.1. Decimals
The base 10 number system. Uses 10 digits: 0 to 9. Numbers raised to the zero
power is equal to one. For example: 5 to the power 0 = 1. Base ten equivalent
of the number
2600 = 2 x (10 to the power 3) + 6 x (10 to the power
2)
33 = 3 x (10 to the power 1) + 3 x (10 to the power 0)
3.2. Binaries
The base 2 number
system. Uses 2 digits : 0 and 1. Works the same as base 10 except we multiply
numbers by the powers of 2 instead. For example 110 is equal to 6 in base
10:
110 = 1 x (2 to the power 2) + 1 x (2 to the power 1) =
6(base10)
3.3. Hexadecimal
The base 16 number
system. Uses 16 digits. 0 to 9 & "A" to "F". Works the same as base 10
& base two except the numbers are multiplied by the powers of 16 instead:
1B = 1 x (16 to the power 1) + 2(B) x (16 to the power of
0) = 30(base10)
4. EXERCISES
4.1. Running
Find
& install a compiler, type the example program and run it. Pretty simple
but be sure the syntax is correct.
4.2. Typing
Make a program
which displays your name without looking to this tutorial. Makes you learn
a lot better.
4.3. Converting
Convert these to decimals
: 110101, 001101, 10101110
Convert these to hexadecimals : 234, 324,
19394
Convert these to binaries
: 2F, 1B3, 234, 125
5. WHAT NOW?
5.1. Good programming related sites
Here are a few good sites about
programming:
http://code.box.sk | --> Very good content. Has message boards. |
http://www.borland.com | --> Free, shareware & commercial compilers. |
http://www.cprogramming.com | --> Some original tuts. |
http://www.planet-source-code.com | --> One of the biggest code archive. |
5.2. Good books on C++
Printed: | |
C++ - How to Program | One of the best books written on C. Great for all levels of programming. |
C++: The complete reference | An overall C++ & STL reference |
A Guide to Programming in C++, Lawrenceville Press | My first book on C++, "borrowed" lots of definitions from there :) |
Online books: |
|
Thinking in C++ is nearly the best one on C++, a must-read. | You can find many online netbooks from code.box.sk |
Thanks to:
-->Cube, to provide such valuable information in the boxnetwork sites.
-->all guys at Neworder's Message board, for asking tutorials.
Ke Bea(!?) to:
-->all friends in the Koch Part-time Prison.
END
OF TUTORIAL
If you want to add something or modify the tutorial in any way please
e-mail me first: clayman@boxnetwork.net. Feel
free to distribute this as you wish.